Codingassignmenthelper | Home Codingassignmenthelper | University

Object Oriented and Web Programming

Northumbria University Newcastle

Assignment :

COURSEWORK ASSESSMENT SPECIFICATION

Module Title : Object Oriented and Web Programming
Module Number : KF6034/CM0667/ LD6034
Academic Year : 2018 - 2019
% Weighting (to overall module) : 50%
Coursework Title : Web Programming assignment and report
Average Study Time Required by Student : Approximately 55 study hours

Mechanisms for Assessment Submission and Feedback

Mechanism for Handout to Students : via eLP (Blackboard)
Mechanism for Submission of Work by Student :
For part A : Via TurnitIn accessed from the link in the Assessment section on eLP (more detailed instructions below)
For part B : Via eLP (Blackboard) and by uploading to newnumyspace account (more detailed instructions below)
Mechanism for return of assignment work, feedback and marks to students : Marks and feedback will be available via My Grades which is accessible from eLP (Blackboard). Students will be emailed to be notified when these are ready to view.

General Information

This assignment constitutes 50% of the assessment for this module. It is in two parts, one of which leads to the other. The aims of the assignment, which will lead you to the fulfillment of the module learning outcomes, are to: Develop a practical web solution using the PHP server-side scripting language and including dynamic web content by retrieving and manipulating data stored in a MySQL relational database and XML files. Justify the design of your web database system with reference to relevant literature Your work, for all parts of the assignment, must be your own and, where you have used words from someone else (quotations), they should be correctly quoted and referenced in accordance to the Harvard (Northumbria) System.

Referencing and academic writing support
If you require guidance on citation, use the guide ‘Cite Them Right’ available from http://www.citethemrightonline.com/ For more support on academic writing and citation, you can also attend the Library’s Northumbria Skills Programme or access Skills Plus via the Library tab on the eLP (Blackboard).

Academic Regulations

Academic Integrity Statement : You must adhere to the university regulations on academic conduct. Formal inquiry proceedings will be instigated if there is any suspicion of plagiarism or any other form of misconduct in your work. Refer to the University’s Academic Regulations for Taught Awards (ARTA) section 1.11 if you are unclear as to the meaning of these terms. The latest copy is available on the University website1

Failure to submit : The University requires all students to submit assessed coursework by the deadline stated in the assessment brief. Where coursework is submitted without approval after the published hand-in deadline, penalties will be applied as defined in the University Policy on the Late Submission of Work in ARTA (section 1.13.1).
Part A – Specification and Design (30%)
This part of the assignment covers the following module learning outcome:
• Specify and design web database systems with justification
Part B – System Development (70%)
This part of the assignment covers the following module learning outcomes:
• Build the presentation layer of multi-tier applications using an appropriate scripting language (e.g. PHP or Java).
• Integrate and test software components that reside on either a web or database server

Detailed submission instructions are below on pages 9-10.

Scenario

You are writing a system for clients to be able to import, save, retrieve and export information from music playlists containing individual songs. The final system in production will ultimately allow multiple playlists to be imported. However for this assignment as the system is at the prototype phase, there is only one xml playlist file of songs that you need to import and display which is at the following link: playlist.xml

Note : In order to view the XML structure from this feeds, it is recommended that you view the source of the page in the browser, e.g.
view-source: playlist.xml
You can also see a sample of the XML in the Appendix of this assignment.

You should use SimpleXML to access the XML file, extract the relevant XML and then reformat it in the way required. A list of the song details from the XML file should be displayed on the main page of your site in HTML and each title should link to the webpage where the song can be purchased on Amazon.com (this link is provided in the xml file). This listing page should be available to all users. It represents the most recently imported playlist for the site.

If a user logs in to the system then, additionally, they should be able to save the reference to any songs so that they can create their own playlist(s) in a ‘my playlist’ page. They should also be able to retrieve any previously saved song details from this playlist, add new songs and also delete them.

Please note that you may not be able to implement all the requirements that follow; this is to be expected. With a technical assignment such as this the requirements include some quite difficult parts that only a very strong student will be able to complete – this allows us to give a range of marks appropriate to ability. Look at the marking scheme on pages 8-9 for some idea of the breakdown of marks.

Part A – Specification and Design

You need to first consider relevant literature regarding usability and interface design and present some colour wireframes for your proposed solution annotated with key information relating to the interface design.

The wireframes should be accompanied by a report justifying your design choices which draw on references from relevant literature regarding usability and recommendations for effective interface design (using Harvard referencing). This document should be between 1,000 and 1,500 words in length.

Marking

This component of the assessment is worth 30% of the total marks available for the assignment. The criteria used for its marking will include: The completeness and appropriateness of design documents (i.e. wireframes and site design) The level at which the literature is analysed and relevance of the usability and interface design issues explored and justified The use of references and examples from relevant literature to support the work. Citation and the use of Harvard referencing
The detailed marking scheme for part A is on page 8 of this assignment.

Part B – System Development

Overview

Read the XML structure in Appendix one which shows an example feed with the items that are the articles. This will help you better understand some of the detail that follows.
Your website should be well-designed with a professional look and feel. You should use HTML5 for this assignment. You will need to implement the following: A common header and footer for all pages displayed so that all pages in the site have a consistent look and feel. The homepage should list all the song details from the XML file in the form of HTML. The XML elements you should display for each item element are: songtitle, artist, releaseyear, genre and link.
You should use SimpleXML only, none of the other php libraries, to access the XML file, extract the relevant XML and then reformat it in the way required.
A search box on the homepage listing, allowing partial matching by title or genre using Xpath. Then only songs matching the search criteria will be displayed on the front page. A means of accessing an Amazon.com webpage where the user can purchase the particular song when the link from the front page is clicked. A means by which a registered user can login which should be available from the homepage. You should use PHP sessions to manage persistence of the login state across all pages and store the date/time of the login. A means by which a user, but only if logged in, can save song details to the saved_songs database table (see accompanying database creation script on eLP) using PDO commands. A means by which a user, but only if logged in, can retrieve and display any previously saved song references from the saved_songs database table using PDO commands.

Specifics

Logging In

Registered users should be able to login and logout, via a facility available from the front page. Any one of the three registered users (see the database table ‘members’) should be able to log in by typing their email and password (their login details are in the SQL script provided).
Note that, for security, the passwords are stored on the database in encrypted form.
Once logged in you should ensure persistence across all pages by using PHP sessions.
You must also store the date/time of the login to the lastlogin field of the members table.
Logging in will mean that the user has access to the menus and functionality for saving and retrieving songs and playlists. Logging out should clear all session information.


Front page

Your site should have its own header and footer. The header area should contain appropriate system titles or images and menu options and a means of logging in and out. Show each song from the XML playlist feed in an appropriate, well-designed layout, displaying the song title as the hyperlink, accompanied by the artist, genre and releaseyear.
Remember, if the user is logged in extra menu items and functionality are available. Songs can be saved to a ‘my playlist’ area by means of appropriate form elements (such as checkboxes, links or buttons) on the front page alongside the list of songs.
You should also be able to link to a list of saved songs (‘my playlist’ area) for the specific logged-in user.
There should be a search box on the front page. By default, the page should display ALL of the retrieved songs, but what is listed will change in response to the Xpath search, if one is performed.


Saving the Song Details to the User’s Playlist

You need to implement a means for a logged in user to save the references to multiple songs in one action to the database for further reference, e.g. by selecting a checkbox next to each song’s details. A partial solution which would receive fewer marks would allow one song at a time to be saved to the playlist. The user should not be allowed to save the same song twice to the playlist.
When a song is saved you should add to the database table called ‘saved_songs the following data for each song: songtitle, link, genre and releaseyear songid (this must uniquely identify a song. Use the songid data here which represents the track’s ISRC, i.e. unique identifier) a means of linking the logged-in user to the saved song the date that the song was saved to the user’s playlist

Note : If you haven't been able to write the code correctly which lists the articles directly from the XML file using SimpleXML, you could hard-code the song details. This would allow you to demonstrate that you can save the songs to the database, and attempt partial marks for this section.


Listing User’s Playlist Items

There should be a menu option, only available to logged-in users, that will list the user’s playlist (i.e. their saved songs) from the database.


Deleting Saved Songs from the Playlist

You need to implement a means for a logged in user to delete multiple saved songs in one action from the database, e.g. by selecting a checkbox next to each saved song’s details. A partial solution which would receive fewer marks would allow one song at a time to be deleted.


Export Playlist to XML file

There should be a means for members to be able to export their own playlist details to an XML file. This XML file should have the same format as the one provided in the assignment for importing data. You should use file writing commands to create this XML file which should be named ‘exported_playlist.xml’ with today’s date prefixed (at the front) of the filename in the format ddmmyyyy.

Note that all pages should validate without any HTML errors as reported by http://validator.w3.org/ using the HTML5 standard. All database access must be via PDO with the connection details stored separately in an included/required file or class. Prepared statements should be used for database access.

The client will be using a MySQL database. The SQL database scripts and associated files needed are all in the assignment folder on eLP (Blackboard).

*You must use SimpleXML for all XML interactions, and PDO for all database connectivity. You will lose marks if you do not.

Advice

Please make sure you plan your code and the way different components will work together before you start writing any code. Make sure your code is indented and commented – your comments should be written first – writing pseudocode which become comments help make sure your code makes sense. Attempt all parts, it’s easier to get a few percent at the start of a question than get those last few percent trying to get a perfect solution to one part. In short getting less than half marks for all parts is better than getting almost full marks on only one part. Even if you don’t get all the XML parts working, though you probably should, don’t miss out those parts that require you to save things to the database. Even if some of the data is ‘hard- coded’ dummy data – you may get some marks for that. To Continue Click Here > Object Oriented and Web Programming.pdf

Codingassignmenthelper | Home Codingassignmenthelper | Home